#ifndef FIGURECONTAINER_H
#define FIGURECONTAINER_H

#include <vector>
#include <string>

#include "figurecontainer_global.h"
#include "figure.h"

class FIGURECONTAINERSHARED_EXPORT FigureContainer
{
    std::vector<Figure*> container;

public:
    FigureContainer();

    Figure * operator[](int i);
    FigureType type(int i);

    int addFigure(FigureType type, std::vector<double> &data);
    void changeData(int i, std::vector<double> &data);

    bool isEmpty();
    size_t size();

    void extension(int i, double coef);
    void extensionAll(double coef);

    void shift(int i, double coef1, double coef2);
    void shiftAll(double coef1, double coef2);

    void turn(int i, double angle);
    void turnAll(double angle);

    void remove(int i);
    void removeAll();

    void inputFile(std::string name);
    void outputFile(std::string name);

    ~FigureContainer();
};

#endif // FIGURECONTAINER_H
